import axios from "axios";
// import { Toast } from "mint-ui"; // 我用的mint的框架来弹出我的错误返回 大家可以用别的提示（移动端的组件库）
import {Message} from 'element-ui';
import store from '../store'
import common from '@/assets/common'

// 默认超时设置
axios.defaults.timeout = 5000;

// 相对路径设置
axios.defaults.baseURL = "";
console.log(process.env.NODE_ENV);
if(process.env.NODE_ENV === 'production'){
  axios.defaults.baseURL = '//ythsxxkj.com/api'
}else{
  axios.defaults.baseURL = '//ythsxxkj.com/api'
}

//http request 拦截器
axios.interceptors.request.use(
  (config) => {
    // 获取token
    const token = sessionStorage.getItem("token");
    // 设置参数格式
    if (!config.headers["Content-Type"]) {
      config.headers = {
        // "Content-Type": "application/json",
        "Content-Type": "application/x-www-form-urlencoded",
      };
    }
    // 添加token到headers
    if (token) {
      config.headers.token = token;
    }
    // 鉴权参数设置
    if (config.method === "get") {
      //get请求下 参数在params中，其他请求在data中
      config.params = config.params || {};
      let json = JSON.parse(JSON.stringify(config.params));
      //一些参数处理
    } else {
      config.data = common.objectToFormData(config.data) || {};
      //一些参数处理
    }
    return config;
  },
  (err) => {
    return Promise.reject(err);
  }
);

//http response 拦截器
axios.interceptors.response.use(
  (response) => {
    // console.log('拦截器');
    //一些统一code的返回处理
    // if (response.code == 401) {


    //   // 登录验证
    //   //做了个示例跳转项目中登录，并记录下相对路径
    //   router.push({
    //     name: "login", //从哪个页面跳转
    //     query: {
    //       retUrl: window.location.href.split("#")[1] || "",
    //       is_new_user_url: 1,
    //     },
    //   });
    // }
    if(response.data.code == 200){
      return response;
    }else{
      Message.error(response.data.message)
      return;
    }
  },
  (error) => {
    // console.log('拦截器'+ error.response.status);
    if (error.response.status == 401) {

      sessionStorage.clear()
      store.commit('clearVUEX')
      router.push("/login");
    }
    return Promise.reject(error);
  },


);

export default axios
